#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# @Project:     regex_engine_py
# @File:        generate_regex.py
# @Author:      Fan GuiChuan
# @Date:        2024/12/23 18:33
# @Version:     Python3.7
# @Description:
import json
import random
import string


def generate_random_regex():
    # 定义一些基本的正则表达式元素
    elements = [
        r'\d+',  # 数字
        r'[a-zA-Z]+',  # 字母
        r'[a-zA-Z\d]+',  # 字母和数字
        r'\w+',  # 字母、数字和下划线
        r'\W+',  # 非字母、数字字符
        r'\s+',  # 空白字符
        r'\S+',  # 非空白字符
        r'\b\w{3,5}\b',  # 3到5个字母或数字的单词边界
        r'\d{1,3}',  # 1到3位数字
        r'[a-z]{1,2}',  # 1到2位小写字母
        r'[A-Z]{1,2}',  # 1到2位大写字母
        # 可以添加更多元素...
    ]

    # 随机选择一个或多个元素，并使用管道符(|)连接它们
    num_elements = random.randint(1, 3)  # 控制生成的复杂度
    selected_elements = random.sample(elements, num_elements)

    # 使用管道符连接元素，并返回最终的正则表达式
    regex = '|'.join(selected_elements)
    return regex


if __name__ == '__main__':
    # 示例：生成并打印5个随机正则表达式
    regex_patterns = []
    for idx in range(100):
        pattern = {
            "id": idx,
            "pattern": generate_random_regex(),
            "flags": 256
        }
        regex_patterns.append(pattern)

    with open('regex_patterns.json', 'w', encoding='utf8') as f:
        f.write(json.dumps(regex_patterns))
